iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0
Mobile Development

IOS的打怪升級之路系列 第 13

鐵人賽第十三天 調色盤(三)設定限制textfield只能輸入數字 下

  • 分享至 

  • xImage
  •  

說明

在前面,我們限制了 UITextField 只能輸入數字,但這還不夠完善。因為當輸入的數字超出範圍(如大於 255 或小於 0)時,會出現錯誤。我們需要進一步對輸入的數字進行範圍限制,以確保顏色值的正確性。/images/emoticon/emoticon12.gif

限制

1.首先,我們需要為每個UITextField的值變更建立一個 IBAction 函式(editingChanged),並檢查輸入是否超出範圍。以下是要創建的事件的圖片.
https://ithelp.ithome.com.tw/upload/images/20240920/20168187ixYLr5J6SW.png

@IBAction func updatar(_ sender: UITextField) {
    var newRedValue: Float = 0.0, newGreenValue: Float = 0.0, newBlueValue: Float = 0.0
    
    // 檢查 Red 的輸入
    if let redText = txfRed.text, let redFloat = Float(redText) {
        newRedValue = limitValue(redFloat)
        txfRed.text = "\(Int(newRedValue))"
    }
    
    // 檢查 Green 的輸入
    if let greenText = txfGreen.text, let greenFloat = Float(greenText) {
        newGreenValue = limitValue(greenFloat)
        txfGreen.text = "\(Int(newGreenValue))"
    }
    
    // 檢查 Blue 的輸入
    if let blueText = txfBlue.text, let blueFloat = Float(blueText) {
        newBlueValue = limitValue(blueFloat)
        txfBlue.text = "\(Int(newBlueValue))"
    }
}

  1. 限制數值範圍
    接下來,創建一個幫助函數 limitValue(_:) 來限制數值範圍在 0 到 255 之間:
func limitValue(_ value: Float) -> Float {
    if value >= 255.0 {
        return 255.0
    } else if value <= 0.0 {
        return 0.0
    } else {
        return value
    }
}

結語

在這次的實作中,我們不僅進一步限制了使用者輸入的顏色數值範圍。透過這個過程,我們實現了簡單但有效的確保數值不會超出範圍。


上一篇
鐵人賽第十二天 調色盤(二)設定限制textfield只能輸入數字 上
下一篇
鐵人賽第十四天 調色盤(四)設定變色與同步textfield與silder的值
系列文
IOS的打怪升級之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言